package code19_jdk8.stream;



public class TestTerminate01 {

	public static void main(String[] args) {
		//f1();
		
		//f2();
		
		f3();
	}

	private static void f3() {
		// noneMatch(Predicate<? super T> predicate) 元素全部 不 满足要求时, 才返回true, 否则返回false
		boolean noneMatch = Emp.getData().stream()
		// 是不是没有人在休假
		.noneMatch( e -> {
			System.out.println(e);
			// 全部返回 false时, noneMatch 才会返回 true
			return Emp.State.VOCATION.equals(e.getState());
		});// 是 短路 的判断
		System.out.println("noneMatch:" + noneMatch);
	}

	private static void f2() {
		// anyMatch(Predicate<? super T> predicate)只要有一个元素满足要求, 就会返回true; 都不满足时, 返回false
		boolean anyMatch = Emp.getData().stream()
		// 是否有员工是空闲的
		.anyMatch( e -> {
			System.out.println(e);
			return Emp.State.FREE.equals(e.getState());
		});// 是 短路 的判断
		System.out.println("anyMatch:"+anyMatch);
	}

	private static void f1() {
		// allMatch(Predicate<? super T> predicate) 元素全部满足要求时, 才返回true, 否则返回false
		boolean allMatch = Emp.getData().stream()
		// 是不是所有的员工都在忙
		.allMatch( e -> {
			System.out.println(e);
			return Emp.State.BUSY.equals(e.getState());
		});// 是 短路 的判断
		System.out.println("allMatch:" + allMatch);
	}
	
}
